/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pap.pickapartner;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Usuario extends Pessoa {

    private Localizacao localizacao;
    private int pontos;
    private Agenda agenda;
    private ArrayList<Veiculo> veiculos;

    public Usuario(String nome, String senha, String email, String cpf, Localizacao localizacao, Agenda agenda, int pontos, List<Veiculo> veiculos) {
        super(nome, senha, email, cpf);
        this.localizacao = localizacao;
        this.pontos = pontos;
        this.agenda = agenda;
        this.veiculos = (ArrayList<Veiculo>) veiculos;

    }

    public Localizacao getLocalizacao() {
        return localizacao;
    }

    public void setLocalizacao(Localizacao localizacao) {
        this.localizacao = localizacao;
    }

    public int getPontos() {
        return pontos;
    }

    public void setPontos(int pontos) {
        this.pontos = pontos;
    }
    
    public Agenda getAgenda() {
        return this.agenda;
    }
    
    public void inserirVeiculo(Veiculo veiculo){
        if(!veiculos.contains(veiculo))
            this.veiculos.add(veiculo);
    }
    
    public boolean removerVeiculo(Veiculo veiculo){
        return this.veiculos.remove(veiculo);
    }
    
   public boolean existeVeiculo(Veiculo veiculo){
        return this.veiculos.contains(veiculo);
   }

    public void adicionarPontos(int pontosObtidos) {
       this.pontos+=pontosObtidos;
    }
    
    public void removerPontos(int pontosRetirados){
       this.pontos-=pontosRetirados; 
    }
    
    public int maxVeiculosVagas() {
        Iterator<Veiculo> veiculosIt = veiculos.iterator();
        int max = 0;
        while(veiculosIt.hasNext()) {
            int nextNoVagas = veiculosIt.next().getVagas();
            if(max < nextNoVagas)
                max = nextNoVagas;
        }
        return max;
    }
}
